/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CapaNegocios;

import controlrestaurante.pmf;
import controlador.EmpleadosJpaController;
import entidad.Empleados;
import controlador.PuestosJpaController;
import entidad.Puestos;
import controlador.SucursalesJpaController;
import entidad.Sucursales;
import java.util.Date;
import java.util.List;

/**
 *
 * @author Milvia
 */
public class CNEmpleados {
    public static boolean insertar(Empleados empleado)
    {        
        try{
            EmpleadosJpaController controlador = new EmpleadosJpaController(pmf.getInstancia().getEMF());
            controlador.create(empleado);
        }catch (Exception e){
            return false;
        }
        return true;  
    }
    
    public static boolean eliminar(Empleados prod)
    {
        
        try{
            EmpleadosJpaController controlador = new EmpleadosJpaController(pmf.getInstancia().getEMF());
            controlador.destroy(prod.getIdEmpleados());
        }
        catch(Exception e )
        {
            return false;
        }
        return true;
    }
    
    public static boolean ingresar (String nombre, String apellidos, float sueldo, String dpi, Date fechaEntrada, Date fechaSalida, Date fechaNacimiento, String carneIggs, String sexo, String profesion, String correo, String telefono, String celular, String direccionImagen, int idPuesto, int idSucursal)
    {
        PuestosJpaController controladorPuestos = new PuestosJpaController(pmf.getInstancia().getEMF());
        Puestos puesto = controladorPuestos.findPuestos(idPuesto);
        SucursalesJpaController controladorSucursal = new SucursalesJpaController(pmf.getInstancia().getEMF());
        Sucursales sucursal = controladorSucursal.findSucursales(idSucursal);
        try{
            Empleados empleado = new Empleados();
            empleado.setNombre(nombre);
            empleado.setApellido(apellidos);
            empleado.setSueldo(sueldo);
            empleado.setDpi(dpi);
            empleado.setFechaEntrada(fechaEntrada);
            empleado.setFechaSalida(fechaSalida);
            empleado.setFechaNac(fechaNacimiento);
            empleado.setCarneIggs(carneIggs);
            empleado.setSexo(sexo);
            empleado.setProfesion(profesion);
            empleado.setCorreo(correo);
            empleado.setTelefono(telefono);
            empleado.setCelular(celular);
            empleado.setDireccionImagen(direccionImagen);
            empleado.setPuestoidPuesto(puesto);
            empleado.setSucursalidSucursal(sucursal);
            EmpleadosJpaController controladorEmpleado = new EmpleadosJpaController(pmf.getInstancia().getEMF());
            controladorEmpleado.create(empleado);
        }
        catch(Exception e){
            return false;
        }
        return true;
    }
    
    public static boolean modificar (String nombre, String apellidos, float sueldo, String dpi, Date fechaEntrada, Date fechaSalida, Date fechaNacimiento, String carneIggs, String sexo, String profesion, String correo, String telefono, String celular, String direccionImagen, int idPuesto, int idSucursal)
    {
        PuestosJpaController controladorPuestos = new PuestosJpaController(pmf.getInstancia().getEMF());
        Puestos puesto = controladorPuestos.findPuestos(idPuesto);
        SucursalesJpaController controladorSucursal = new SucursalesJpaController(pmf.getInstancia().getEMF());
        Sucursales sucursal = controladorSucursal.findSucursales(idSucursal);
        if ((sucursal == null) && (puesto == null))
            return false;
        try{
            Empleados empleado = new Empleados();
            empleado.setNombre(nombre);
            empleado.setApellido(apellidos);
            empleado.setSueldo(sueldo);
            empleado.setDpi(dpi);
            empleado.setFechaEntrada(fechaEntrada);
            empleado.setFechaSalida(fechaSalida);
            empleado.setFechaNac(fechaNacimiento);
            empleado.setCarneIggs(carneIggs);
            empleado.setSexo(sexo);
            empleado.setProfesion(profesion);
            empleado.setCorreo(correo);
            empleado.setTelefono(telefono);
            empleado.setCelular(celular);
            empleado.setDireccionImagen(direccionImagen);
            empleado.setPuestoidPuesto(puesto);
            empleado.setSucursalidSucursal(sucursal);
            EmpleadosJpaController controladorEmpleado = new EmpleadosJpaController(pmf.getInstancia().getEMF());
            controladorEmpleado.edit(empleado);
        }
        catch(Exception e){
            return false;
        }
        return true;
    }
    
    public static boolean modificar(Empleados pro)
    {
        try{
            EmpleadosJpaController controlador = new EmpleadosJpaController(pmf.getInstancia().getEMF());
            controlador.edit(pro);
        }catch(Exception e)
        {
            return false;
        }
        return true;
    }
    
    public static boolean activar(int id)
    {
        EmpleadosJpaController controladorEmpleado = new EmpleadosJpaController(pmf.getInstancia().getEMF());
        Empleados empleado = controladorEmpleado.findEmpleados(id);
        try{
            empleado.setActivo(Boolean.TRUE);
            EmpleadosJpaController controlador = new EmpleadosJpaController(pmf.getInstancia().getEMF());
            controlador.edit(empleado);
        }
        catch(Exception e){
            return false;
        }
        return true;
    }
    
    public static boolean desactivar(int id)
    {
        EmpleadosJpaController controladorEmpleado = new EmpleadosJpaController(pmf.getInstancia().getEMF());
        Empleados empleado = controladorEmpleado.findEmpleados(id);
        try{
            empleado.setActivo(Boolean.FALSE);
            EmpleadosJpaController controlador = new EmpleadosJpaController(pmf.getInstancia().getEMF());
            controlador.edit(empleado);
        }
        catch(Exception e){
            return false;
        }
        return true;
    }
    
    //************* Funciones de Búsqueda *************
    public static Empleados buscarPorId(int id)
    {
        Empleados empleado = new Empleados();
        try{
            EmpleadosJpaController controladorEmpleado = new EmpleadosJpaController(pmf.getInstancia().getEMF());
            empleado = controladorEmpleado.findEmpleados(id);
        }
        catch(Exception e)
        {
            return null;
        }
        return empleado;
    }
    
    public static List<Empleados> buscarActivos()
    {
        List<Empleados> empleados = (List) Consultas.consulta("Empleados", "findByActivo", "activo", true);
        return empleados;
    }
    
    public static List<Empleados> buscarNombre(String nombre)
    {
        List <Empleados> lista= (List) Consultas.consulta("Empleados", "findByNombre", "nombre", "%"+nombre+"%");
        return lista;
    }
}
